//用户vuex 数据模块
const getters = {}
//解构ajax接口函数
import {checkLoginReq} from '@/api/user'
const state = {
  //初始化 从本地拉取数据赋值给vuex
  token: localStorage.getItem('t_k'), //token
  role: localStorage.getItem('role'), //角色
}
//同步方法 同步修改数据
const mutations = {
  SET_TOKEN(state, data) {
    //token存vuex
    state.token = data
    //token存本地
    localStorage.setItem('t_k', data)
  },
  SET_ROLE(state, data) {
    state.role = data
    localStorage.setItem('role', data)
  },
}

//异步方法
const actions = {
  //登录
  async A_login({commit}, data) {
    //发送请求
    return new Promise(async resolve => {
      // 发送请求
      let res = await checkLoginReq(data)
      // 解构数据
      let {code, msg, token, role} = res.data
      // 判断
      if (code === 0) {
        commit('SET_TOKEN', 'Bearer ' + token)
        commit('SET_ROLE', role)

        // 切换promise状态为 已成功
        resolve()
      }
    })
  },
}

export default {
  //命名空间
  namespaced: true,
  state,
  mutations,
  actions,
}
